import {ref} from "vue"

//引入用户相关的小仓库
import useCustomerStore from '@/store/customer.js'
//定位 持续导航
export const aMapLocLon = () => {
	//持续定位插件对象
	const loc = uni.requireNativePlugin('AMap-Loc');
	//监听全局事件
	// const globalEvent = uni.requireNativePlugin('globalEvent');
	const useCustomer = useCustomerStore()
	
	loc.updatePrivacyShow(true, true);
	loc.updatePrivacyAgree(true);

//添加监听定位数据回调
	// globalEvent.addEventListener('onLocationEvent', function(e) {
	// 	useCustomer.postLogisticAliveFun(e.data);
	// });
	
	//设置定位数据回调
	loc.setLocationCallback(function(res){
			if (res.code == 0) {
					useCustomer.postLogisticAliveFun(res.data);
			} else {
					var errorCode = res.code;//定位错误码，参考https://lbs.amap.com/api/android-location-sdk/guide/utilities/errorcode
					var errorMsg = res.msg;//错误消息
			}
	});
	
	//定位配置
	loc.setLocationOption({
		needAddress:true,//定位是否需要解析地址
		enableHTTPS:true,//(ios）
		allowsBackgroundLocationUpdates:true,//(ios）开启后台定位
		pausesLocationUpdatesAutomatically:false,//(ios）开启后台定位
		locationMode:2,
		//distanceFilter:1,//(ios）设置定位最小更新距离方法如下，单位米。当两次定位距离满足设置的最小更新距离时，SDK会返回符合要求的定位结果。
		//locationTimeout:5,//单次定位超时时间（ios）
		//reGeocodeTimeout:10,//单次定位地址解析超时时间（ios）
		//onceLocation:true,//定位一次（android）
		//onceLocationLatest:true,（android）
		interval:20000,//android设置定位间隔,单位毫秒,默认为2000ms，最低1000ms。（android）
		//httpTimeOut:30000//设置定位请求超时时间,单位是毫秒，默认30000毫秒，不要低于8000毫秒。（android）
		//mockEnable:true,//设置是否允许模拟位置,默认为true，允许模拟位置（android）
		// locationCacheEnable:false//设置是否开启定位缓存机制（android）
	});
	
	function startLocation() {
		//检查定位是否开启1
		var ret = loc.isLocationRunning();
		console.log(ret,'检查定位是否开启')
		if (ret == false) {
			//开始定位
			loc.startLocation();
		} else {
			// uni.showToast({
			// 	title:"已经开启定位"
			// });
			console.log('已经开启定位');
		}
	}
	startLocation();
}